package com.shenchuangit.rydemo.web.client.base.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 客户基础信息对象 client
 *
 * @author Houxuzhong
 * @date 2021-10-09
 */
@ApiModel("客户基础信息")
public class Client extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty("ID")
    private Long id;

    /**
     * 客户编号
     */
    @Excel(name = "客户编号")
    @ApiModelProperty("客户编号")
    private String clientCode;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String name;

    /**
     * 证件类型(字典：社会统一信用代码)
     */
    @Excel(name = "证件类型(字典：社会统一信用代码)")
    @ApiModelProperty("证件类型(字典：社会统一信用代码)")
    private String credentialsType;

    /**
     * 证件号码
     */
    @Excel(name = "证件号码")
    @ApiModelProperty("证件号码")
    private String creditCode;

    /**
     * 主办客户经理
     */
    @Excel(name = "主办客户经理ID")
    @ApiModelProperty("主办客户经理ID")
    private Long mainManager;

    /**
     * 主办客户经理
     */
    @Excel(name = "主办客户经理名称")
    @ApiModelProperty("主办客户经理名称")
    private String mainManagerText;

    /**
     * 协办客户经理
     */
    @Excel(name = "协办客户经理")
    @ApiModelProperty("协办客户经理")
    private Long subManager;

    /**
     * 协办客户经理
     */
    @Excel(name = "协办客户经理名称")
    @ApiModelProperty("协办客户经理名称")
    private String subManagerText;

    /**
     * 客户角色
     */
    @Excel(name = "客户角色")
    @ApiModelProperty("客户角色")
    private String customerType;

    /**
     * 企业性质(字典：国有控股、民营合图、民营独资、外资独资、中外合资)
     */
    @Excel(name = "企业性质(字典：国有控股、民营合图、民营独资、外资独资、中外合资)")
    @ApiModelProperty("企业性质(字典：国有控股、民营合图、民营独资、外资独资、中外合资)")
    private String enterpriseNature;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("注册时间")
    private Date registrationDate;

    /**
     * 注册资本
     */
    @Excel(name = "注册资本")
    @ApiModelProperty("注册资本")
    private BigDecimal registeredCapital;

    /**
     * 资产总额
     */
    @Excel(name = "资产总额")
    @ApiModelProperty("资产总额")
    private BigDecimal totalAssets;

    /**
     * 营业收入
     */
    @Excel(name = "营业收入")
    @ApiModelProperty("营业收入")
    private BigDecimal operatingReceipt;

    /**
     * 国标行业分类编码(树级字典)
     */
    @Excel(name = "国标行业分类编码(树级字典)")
    @ApiModelProperty("国标行业分类编码(树级字典)")
    private String isic;

    /**
     * 国标行业分类标签(树级字典)
     */
    @Excel(name = "国标行业分类标签(树级字典)")
    @ApiModelProperty("国标行业分类标签(树级字典)")
    private String isicLabel;

    /**
     * 经营地址
     */
    @Excel(name = "经营地址")
    @ApiModelProperty("经营地址")
    private String businessAddress;

    /**
     * 邮编
     */
    @Excel(name = "邮编")
    @ApiModelProperty("邮编")
    private String officePostcode;

    /**
     * 单位电话
     */
    @Excel(name = "单位电话")
    @ApiModelProperty("单位电话")
    private String businessPhone;

    /**
     * 传真号码
     */
    @Excel(name = "传真号码")
    @ApiModelProperty("传真号码")
    private String enterpriseFax;

    /**
     * 法人姓名
     */
    @Excel(name = "法人姓名")
    @ApiModelProperty("法人姓名")
    private String legalPersonName;

    /**
     * 法人性别
     */
    @Excel(name = "法人性别")
    @ApiModelProperty("法人性别")
    private String legalPersonSex;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    private String legalPersonIdCard;

    /**
     * 家庭住址
     */
    @Excel(name = "家庭住址")
    @ApiModelProperty("家庭住址")
    private String legalPersonAddress;

    /**
     * 联系人姓名
     */
    @Excel(name = "联系人姓名")
    @ApiModelProperty("联系人姓名")
    private String contactName;

    /**
     * 联系人职位
     */
    @Excel(name = "联系人职位")
    @ApiModelProperty("联系人职位")
    private String contactPosition;

    /**
     * 联系人手机
     */
    @Excel(name = "联系人手机")
    @ApiModelProperty("联系人手机")
    private String contactPhone;

    /**
     * 联系人电话
     */
    @Excel(name = "联系人电话")
    @ApiModelProperty("联系人电话")
    private String contactTel;

    /**
     * 联系人邮箱
     */
    @Excel(name = "联系人邮箱")
    @ApiModelProperty("联系人邮箱")
    private String contactEmail;

    /**
     * 联系人详情
     */
    @Excel(name = "联系人详情")
    @ApiModelProperty("联系人详情")
    private String contactDetails;

    /**
     * 项目来源
     */
    @Excel(name = "项目来源")
    @ApiModelProperty("项目来源")
    private String projectSource;

    /**
     * 主营业务
     */
    @Excel(name = "主营业务")
    @ApiModelProperty("主营业务")
    private String mainBusiness;

    /**
     * 产品服务
     */
    @Excel(name = "产品服务")
    @ApiModelProperty("产品服务")
    private String productService;

    /**
     * 行业地位
     */
    @Excel(name = "行业地位")
    @ApiModelProperty("行业地位")
    private String industryStatus;

    /**
     * 经营活动
     */
    @Excel(name = "经营活动")
    @ApiModelProperty("经营活动")
    private String businessAnalysis;

    /**
     * 投资活动
     */
    @Excel(name = "投资活动")
    @ApiModelProperty("投资活动")
    private String investmentAnalysis;

    /**
     * 筹资活动
     */
    @Excel(name = "筹资活动")
    @ApiModelProperty("筹资活动")
    private String financingAnalysis;

    /**
     * 诉讼信息
     */
    @Excel(name = "诉讼信息")
    @ApiModelProperty("诉讼信息")
    private String lawsuits;

    /**
     * 所属部门名称
     */
    @Excel(name = "所属部门名称")
    @ApiModelProperty("所属部门名称")
    private String aclDeptText;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setClientCode(String clientCode) {
        this.clientCode = clientCode;
    }

    public String getClientCode() {
        return clientCode;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setCredentialsType(String credentialsType) {
        this.credentialsType = credentialsType;
    }

    public String getCredentialsType() {
        return credentialsType;
    }

    public void setCreditCode(String creditCode) {
        this.creditCode = creditCode;
    }

    public String getCreditCode() {
        return creditCode;
    }

    public void setMainManager(Long mainManager) {
        this.mainManager = mainManager;
    }

    public Long getMainManager() {
        return mainManager;
    }

    public String getMainManagerText() {
        return mainManagerText;
    }

    public void setMainManagerText(String mainManagerText) {
        this.mainManagerText = mainManagerText;
    }

    public void setSubManager(Long subManager) {
        this.subManager = subManager;
    }

    public Long getSubManager() {
        return subManager;
    }

    public String getSubManagerText() {
        return subManagerText;
    }

    public void setSubManagerText(String subManagerText) {
        this.subManagerText = subManagerText;
    }

    public void setCustomerType(String customerType) {
        this.customerType = customerType;
    }

    public String getCustomerType() {
        return customerType;
    }

    public void setEnterpriseNature(String enterpriseNature) {
        this.enterpriseNature = enterpriseNature;
    }

    public String getEnterpriseNature() {
        return enterpriseNature;
    }

    public void setRegistrationDate(Date registrationDate) {
        this.registrationDate = registrationDate;
    }

    public Date getRegistrationDate() {
        return registrationDate;
    }

    public void setRegisteredCapital(BigDecimal registeredCapital) {
        this.registeredCapital = registeredCapital;
    }

    public BigDecimal getRegisteredCapital() {
        return registeredCapital;
    }

    public void setTotalAssets(BigDecimal totalAssets) {
        this.totalAssets = totalAssets;
    }

    public BigDecimal getTotalAssets() {
        return totalAssets;
    }

    public void setOperatingReceipt(BigDecimal operatingReceipt) {
        this.operatingReceipt = operatingReceipt;
    }

    public BigDecimal getOperatingReceipt() {
        return operatingReceipt;
    }

    public void setIsic(String isic) {
        this.isic = isic;
    }

    public String getIsic() {
        return isic;
    }

    public void setIsicLabel(String isicLabel) {
        this.isicLabel = isicLabel;
    }

    public String getIsicLabel() {
        return isicLabel;
    }

    public void setBusinessAddress(String businessAddress) {
        this.businessAddress = businessAddress;
    }

    public String getBusinessAddress() {
        return businessAddress;
    }

    public void setOfficePostcode(String officePostcode) {
        this.officePostcode = officePostcode;
    }

    public String getOfficePostcode() {
        return officePostcode;
    }

    public void setBusinessPhone(String businessPhone) {
        this.businessPhone = businessPhone;
    }

    public String getBusinessPhone() {
        return businessPhone;
    }

    public void setEnterpriseFax(String enterpriseFax) {
        this.enterpriseFax = enterpriseFax;
    }

    public String getEnterpriseFax() {
        return enterpriseFax;
    }

    public void setLegalPersonName(String legalPersonName) {
        this.legalPersonName = legalPersonName;
    }

    public String getLegalPersonName() {
        return legalPersonName;
    }

    public void setLegalPersonSex(String legalPersonSex) {
        this.legalPersonSex = legalPersonSex;
    }

    public String getLegalPersonSex() {
        return legalPersonSex;
    }

    public void setLegalPersonIdCard(String legalPersonIdCard) {
        this.legalPersonIdCard = legalPersonIdCard;
    }

    public String getLegalPersonIdCard() {
        return legalPersonIdCard;
    }

    public void setLegalPersonAddress(String legalPersonAddress) {
        this.legalPersonAddress = legalPersonAddress;
    }

    public String getLegalPersonAddress() {
        return legalPersonAddress;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactPosition(String contactPosition) {
        this.contactPosition = contactPosition;
    }

    public String getContactPosition() {
        return contactPosition;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactTel(String contactTel) {
        this.contactTel = contactTel;
    }

    public String getContactTel() {
        return contactTel;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setContactDetails(String contactDetails) {
        this.contactDetails = contactDetails;
    }

    public String getContactDetails() {
        return contactDetails;
    }

    public void setProjectSource(String projectSource) {
        this.projectSource = projectSource;
    }

    public String getProjectSource() {
        return projectSource;
    }

    public void setMainBusiness(String mainBusiness) {
        this.mainBusiness = mainBusiness;
    }

    public String getMainBusiness() {
        return mainBusiness;
    }

    public void setProductService(String productService) {
        this.productService = productService;
    }

    public String getProductService() {
        return productService;
    }

    public void setIndustryStatus(String industryStatus) {
        this.industryStatus = industryStatus;
    }

    public String getIndustryStatus() {
        return industryStatus;
    }

    public void setBusinessAnalysis(String businessAnalysis) {
        this.businessAnalysis = businessAnalysis;
    }

    public String getBusinessAnalysis() {
        return businessAnalysis;
    }

    public void setInvestmentAnalysis(String investmentAnalysis) {
        this.investmentAnalysis = investmentAnalysis;
    }

    public String getInvestmentAnalysis() {
        return investmentAnalysis;
    }

    public void setFinancingAnalysis(String financingAnalysis) {
        this.financingAnalysis = financingAnalysis;
    }

    public String getFinancingAnalysis() {
        return financingAnalysis;
    }

    public void setLawsuits(String lawsuits) {
        this.lawsuits = lawsuits;
    }

    public String getLawsuits() {
        return lawsuits;
    }

    public String getAclDeptText() {
        return aclDeptText;
    }

    public void setAclDeptText(String aclDeptText) {
        this.aclDeptText = aclDeptText;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("clientCode", getClientCode())
                .append("name", getName())
                .append("credentialsType", getCredentialsType())
                .append("creditCode", getCreditCode())
                .append("mainManager", getMainManager())
                .append("subManager", getSubManager())
                .append("customerType", getCustomerType())
                .append("enterpriseNature", getEnterpriseNature())
                .append("registrationDate", getRegistrationDate())
                .append("registeredCapital", getRegisteredCapital())
                .append("totalAssets", getTotalAssets())
                .append("operatingReceipt", getOperatingReceipt())
                .append("isic", getIsic())
                .append("isicLabel ", getIsicLabel())
                .append("businessAddress", getBusinessAddress())
                .append("officePostcode", getOfficePostcode())
                .append("businessPhone", getBusinessPhone())
                .append("enterpriseFax", getEnterpriseFax())
                .append("legalPersonName", getLegalPersonName())
                .append("legalPersonSex", getLegalPersonSex())
                .append("legalPersonIdCard", getLegalPersonIdCard())
                .append("legalPersonAddress", getLegalPersonAddress())
                .append("contactName", getContactName())
                .append("contactPosition", getContactPosition())
                .append("contactPhone", getContactPhone())
                .append("contactTel", getContactTel())
                .append("contactEmail", getContactEmail())
                .append("contactDetails", getContactDetails())
                .append("projectSource", getProjectSource())
                .append("mainBusiness", getMainBusiness())
                .append("productService", getProductService())
                .append("industryStatus", getIndustryStatus())
                .append("businessAnalysis", getBusinessAnalysis())
                .append("investmentAnalysis", getInvestmentAnalysis())
                .append("financingAnalysis", getFinancingAnalysis())
                .append("lawsuits", getLawsuits())
                .append("aclDeptId", getAclDeptId())
                .append("aclCreateById", getAclCreateById())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
